<?php

/*Créer un panier si celui-ci n'existe pas*/
function creationPanier(){
   if(!isset($_SESSION['panier'])) {
      $_SESSION['panier']=array();
      $_SESSION['panier']['title'] = array();
      $_SESSION['panier']['price'] = array();
      $_SESSION['panier']['number'] = array();
      $_SESSION['panier']['stock'] = array(); // sauvegarder le stock
   }
   return true;
}

/*Permet de sauvegarder la diminution du stock dans une variable de session
de manière à soustraire définitivement les produits du stock si le panier
est validé*/
function majStock($stockIni, $title) {
  $stock = $stockIni;
     if(creationPanier()) {
      $positionProduit = array_search($title,  $_SESSION['panier']['title']);

      if ($positionProduit !== false) { // Si le produit est déjà dans le panier
         $stock = $_SESSION['panier']['number'][$positionProduit] ;
         $_SESSION['panier']['stock'][$positionProduit] = $stockIni - $stock ;
         $stock = $_SESSION['panier']['stock'][$positionProduit] ;
      }
   }
   return $stock;
}

/*Dans le cas où l'utilisateur valide son panier, le stock est mis à jour dans 
la base de données*/
function supprimerArticlesBDD() {
  if(creationPanier()) {
    $bdd = getConnexion(); // Connexion à la BDD
    for($i = 0; $i < count($_SESSION['panier']['title']); $i++) {
        $req1 = $bdd->exec('UPDATE productlist SET number='.$_SESSION['panier']['stock'][$i].' WHERE title="'.$_SESSION['panier']['title'][$i].'"'); // Exécution de la requête
    }
  }
}

/*Ajouter un article au panier*/
function ajouterArticle($title,$number,$price){
   if(creationPanier()) {
      $positionProduit = array_search($title,  $_SESSION['panier']['title']);

      if ($positionProduit !== false) { // Si le produit est déjà dans le panier
         $_SESSION['panier']['number'][$positionProduit] += $number ;
      }
      else { // Sinon on l'ajoute
         array_push( $_SESSION['panier']['title'],$title);
         array_push( $_SESSION['panier']['number'],$number);
         array_push( $_SESSION['panier']['price'],$price);
      }
   }
   else
   echo "Pas de panier dans lequel placer l'article";
}

/*Supprimer l'ensemble des articles correspondant à une même référence*/
function supprimerArticle($title){
   if (creationPanier()) {
      $tmp = array(); // Creation d'un panier temporaire
      $tmp['title'] = array();
      $tmp['number'] = array();
      $tmp['price'] = array();

      for($i = 0; $i < count($_SESSION['panier']['title']); $i++) { // Ajout des articles sauf celui à supprimer
         if ($_SESSION['panier']['title'][$i] != $title) {
            array_push( $tmp['title'],$_SESSION['panier']['title'][$i]);
            array_push( $tmp['number'],$_SESSION['panier']['number'][$i]);
            array_push( $tmp['price'],$_SESSION['panier']['price'][$i]);
         }
      }
      // Substitution du panier de session
      $_SESSION['panier'] =  $tmp;
   }
   else {
      echo 'Probleme suppression article panier';
   }
}

function calculerTotal() { 
    $total = 0; 
    $nb_articles = count($_SESSION['panier']['title']); 

    for($i = 0; $i < $nb_articles; $i++) { 
        $total += $_SESSION['panier']['number'][$i] * $_SESSION['panier']['price'][$i]; 
    } 
    return $total; 
} 

function compterArticles() {
   $nbArticles = 0;

   if(isset($_SESSION['panier'])) {
      for($i = 0; $i < count($_SESSION['panier']['title']); $i++) {
         $nbArticles += $_SESSION['panier']['number'][$i];
      }
   }
   return $nbArticles;
}

function vider_panier() { 
     if(isset($_SESSION['panier'])) { 
         unset($_SESSION['panier']);
         creationPanier();
     } 
     else { 
         echo "Panier deja vide !";
     } 
} 

?>